package com.roadjava.log.jul.demo1;

import java.util.logging.Handler;
import java.util.logging.Level;
import java.util.logging.Logger;

public class JulService1 {

    /**
     * 为什么日志是红色输出？
     * System.err
     *
     * 为什么默认输出info后面的日志
     */
    public static void main(String[] args) {
        JulService1 julService = new JulService1();

//        julService.log0();

//        julService.log1();

        julService.log2();


    }

    public void log0() {
        System.out.println(111); // 黑色
        System.err.println(222); // 红色
    }

    public void log1() {
        Logger logger = Logger.getLogger("abc");

        logger.log(Level.FINEST,"finest level"); // FINEST：最好的
        logger.log(Level.FINER,"finer level"); // FINER：更好的
        logger.log(Level.FINE,"fine level"); // FINE：好的
        logger.log(Level.CONFIG,"config level"); // CONFIG：配置

        logger.log(Level.INFO,"info level");

        logger.log(Level.WARNING,"warning level1"); // WARNING：警告
        logger.warning("warning level2");

        logger.log(Level.SEVERE,"severe level"); // SEVERE：严重
    }

    public void log2() {
        Logger logger = Logger.getLogger("abc");
        // 设置logger级别
        logger.setLevel(Level.ALL);

        // 获取到父级并设置handler（appender）的级别
        Handler[] handlers = logger.getParent().getHandlers();
        for (Handler handler : handlers) {
            handler.setLevel(Level.ALL);
        }

        logger.log(Level.FINEST,"finest level"); // FINEST：最好的
        logger.log(Level.FINER,"finer level"); // FINER：更好的
        logger.log(Level.FINE,"fine level"); // FINE：好的
        logger.log(Level.CONFIG,"config level"); // CONFIG：配置

        logger.log(Level.INFO,"info level");

        logger.log(Level.WARNING,"warning level1"); // WARNING：警告
        logger.warning("warning level2");

        logger.log(Level.SEVERE,"severe level"); // SEVERE：严重
    }

}
